package com.goodfox.web.generic.account.mapper;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.session.RowBounds;

import com.goodfox.web.generic.account.entity.Account;
import com.goodfox.web.generic.role.entity.Role;

/**
 * 账户映射类
 * @author qin gt
 *
 */
public interface AccountMapper {
	
	/**
	 * 查询人员列表
	 * @param map
	 * @return
	 */
	List<Account> selectAccountList(Map map);
	
	/**
	 * 查询人员列表(分页)
	 * @param map
	 * @param rowBounds
	 * @return
	 */
	List<Account> selectAccountList(Map map,RowBounds rowBounds);
	
	/**
	 * 查询人员列表数量
	 * @param map
	 * @return
	 */
	Long selectAccountListCount(Map map);
	
	/**
	 * 查询人员
	 * @param actId
	 * @return
	 */
	Account selectAccountById(String actId);
	
	/**
	 * 插入人员
	 * @param account
	 */
	void insertAccount(Account account);
	
	/**
	 * 修改人员
	 * @param account
	 */
	void updateAccount(Account account);
	
	/**
	 * 删除人员
	 * @param actId
	 */
	void deleteAccountById(String actId);
	
	/**
	 * 删除人员（非物理）
	 * @param actId
	 */
	void updateDeleteAccountById(String actId);
	
	/**
	 * 根据用户名返回账号Id
	 * @param actName 用户名
	 * @return 
	 */
	String selectActIdByName(String actName);
	
	/**
	 * 根据用户名查询账户（单个）
	 * @param actName 用户名
	 * @return
	 */
	Account selectAccountByName(String actName);

	/**
	 * 修改密码时，判断旧密码是否正确
	 * @param map
	 * @return
	 */
	Account selectAccountByNamePwd(Map map);

	/**
	 * 修改密码
	 * @param account
	 */
	void updatePassword(Account account);

	/**
	 * 根据角色适用范围查询角色（账户页面用，选择角色）
	 * @param map
	 * @return
	 */
	List<Role> queryRoleListByScope(Map map);
	
}
